草庐IT

Android AsyncTask 内存泄漏

全部标签

java - 为什么 New Relic 会占用大量 tomcat 内存?

最近我们开始使用NewRelic来监控我们在tomcat7.0.6服务器上托管的生产web应用程序,但我们观察到这个tomcat的内存占用量不断增加,并且在一周内它吃掉了所有服务器(AWSHigh-MemoryDoubleExtraLargeInstance)内存并变得无响应,恢复它的唯一方法是重新启动它。我们在启动tomcat时提供Xms和Xmx参数,但在几个小时内,tomcat进程的内存使用量与Xmx值交叉,并且它一直在增加,直到所有服务器内存都用完。这是进程命令:/usr/java/jdk1.6.0_24//bin/java-Djava.util.logging.config.f

java - 了解 Jetty 的内存使用情况

我有一个Jetty服务器,用于我正在开发的应用程序的websocket连接。唯一的问题是Jetty消耗了太多的虚拟内存(!2.5GB的虚拟内存)和大约650RES。我的问题是,如上所述,大部分内存(大约12gb)不是堆大小,因此分析它和理解正在发生的事情比较困难。关于如何了解12GB消耗的来源以及如何找出内存泄漏或服务器的任何其他问题,您有什么提示吗?我想澄清我所说的虚拟内存的意思(因为我的理解可能是错误的)。当我运行top时,虚拟内存是“VIRT”。这是我得到的:PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND-------------------

java - 字符串创建和字符数组内存分配

我已经阅读了很多关于创建String时内存分配的相互矛盾的文章。有些文章说new运算符在堆中创建一个字符串,而字符串字面量在字符串池[堆]中创建,而有些文章则说new运算符在堆中创建一个对象,在字符串池中创建另一个对象。为了对此进行分析,我编写了以下程序,打印了Stringchar数组和String对象的哈希码:importjava.lang.reflect.Field;publicclassStringAnalysis{privateintshowInternalCharArrayHashCode(Strings)throwsSecurityException,NoSuchField

java - 内存管理 : how to reset a list correctly

在内存使用和对垃圾收集器的影响方面,我想知道这两种实现之间是否存在差异:protectedList_data=newArrayList();//Iwanttoresetthislistusinganotherone.Firsttry:publicvoidset(ListnewData){_data=newData;}//Iwanttoresetthislistusinganotherone.Secondtry:publicvoidset(ListnewData){_data.clear();_data.addAll(newData);}此外,如果有任何功能上的差异,请告诉我!

java - 64 位 Windows 上的 32 位 JVM 在使用 -Xmx1300m 和大量可用内存启动时崩溃

我正在为Java堆空间设置而苦恼。Windows上的默认Java是32位客户端,与操作系统版本无关(这是Oracle向所有用户推荐的)。它似乎默认将最大堆大小设置为256MB,这对我来说太小了。我使用自定义启动器来启动应用程序。我希望它在内存充足的计算机上使用更多内存,而在内存较少的计算机上默认使用-Xmx512m。据我所知,唯一的方法是静态-Xmx设置(必须在启动时设置)。我有一个拥有8GBRAM、64位Windows和32位Java7的用户。JVM可见的最大内存为4G(通过查询OperatingSystemMXBean返回)。我明白为什么,没问题。出于某种原因,我的应用程序无法为这

java - 使用 Java 访问内存

我在内存中加载了一个程序。现在我想直接访问内存并为该程序更改内存中的OPCODE和DATA。为此,我需要编写一个Java程序。你能告诉我这是否可行吗?如果是,请告诉我如何编写这样的程序。提前致谢! 最佳答案 Java不是为此而设计的。Java的主要目的是让JVM为您管理内存。因此,您的程序是沙盒化的。但是,HotSpotJVM中似乎有一个后门:Javawasinitiallydesignedasasafe,managedenvironment.Nevertheless,JavaHotSpotVMcontainsa“backdoor”

java - Spring Boot 内存消耗增加超过 -Xmx 选项

我注意到SpringBoot应用程序不遵守通过Xmx选项设置的内存量。例如:java-Xss64m-Xmx64m-jartest.jar我还在控制台上打印了应用程序在启动时实际使用的内存量,并显示:最大内存:61MlongmaxBytes=Runtime.getRuntime().maxMemory();System.out.println("Maxmemory:"+maxBytes/1024/1024+"M");在访问任何网页之前打开Windows进程时,它显示+-105M,那么Java怎么说61M呢?访问任何网页后,它从+-125M变为+-135M。为什么会有这样的增长?它应该给出

Java重播日志,诊断内存不足错误

我们正在运行一个带有JNI层的Java8应用程序,该层由于C层某处的内存不足错误而崩溃。除了通常的hs_err_pid.log文件,我们注意到这次我们还收到了一个replay_pid.log文件。我已经做了一些广泛的Google-foo,几乎找不到关于这个文件的任何信息。有没有人以前看过这个文件,有没有人知道它包含什么以及如何最好地分析它? 最佳答案 该文件由java热点生成,用于提供有关发生问题时的操作的重播信息。它是否为您提供了足够具体的信息来告诉您问题出在哪里,但它确实有助于告诉您当时一般情况下发生了什么。在OpenJDK下报

java - Spark Driver 内存和 Executor 内存

我是Spark的初学者,我正在运行我的应用程序以从文本文件中读取14KB数据,进行一些转换和操作(收集、收集AsMap)并将数据保存到数据库我在我的macbook上本地运行它,它有16G内存,8个逻辑核心。Java最大堆设置为12G。这是我用来运行应用程序的命令。bin/spark-submit--classcom.myapp.application--masterlocal[*]--executor-memory2G--driver-memory4G/jars/application.jar我收到以下警告2017-01-1316:57:31.579[Executortasklaunc

java - 使用 Tomcat/Websphere 将 JSP 编译为字符串或内存字节数组

我正在转换为图像和PDF输出。我需要一个由我们的应用程序JSP生成的输入HTML文档。本质上,我需要将基于JSP的应用程序的最终输出结果呈现为字符串或内存,然后将该字符串用于其他处理。有哪些方法可以仅调用JSP呈现器来获取通常输出给用户的最终HTML内容?理想情况下,我正在寻找适用于多个应用程序服务器(如websphere)的东西。但是Tomcat特定的东西也可以工作。还有其他几种不同的方法,但我认为呈现JSP(可能包括子JSP)是最好的方法。我宁愿远离的可选路径。我可以使用套接字API对页面执行网络请求,然后读取从该特定页面呈现的最终输出。这可能是下一个最佳选择,但我们在多个服务器和